#include<stdio.h>
#include<stdlib.h>

struct PersonNode
{
    char name[6];
    int year;
    int month;
    int day;
    int err_flag;
    
}person[100001];
int main()
{
    int N,min=-1,max=-1;
    int i,err_count=0,err_flag=0;
    scanf("%d",&N);
    for ( i= 0; i < N; i++)
    {
        scanf("%s %d/%d/%d",&person[i].name,&person[i].year,&person[i].month,&person[i].day);
        person[i].err_flag=0;
        /*check  */
        if(person[i].year<=1814) 
        {
            if(person[i].year<1814) {person[i].err_flag=1;err_count++;}
            else
            {
                if(person[i].month<=9)
                 {
                    if(person[i].month<9) {person[i].err_flag=1;err_count++;}
                    else
                    {
                        if(person[i].day<=6)
                        {
                            if(person[i].day<6) {person[i].err_flag=1;err_count++;}
                        }
                    }
                 }

            }
        }
        /*check  */
     else  
         if(person[i].year>=2014) 
        {
            if(person[i].year>2014) {person[i].err_flag=1;err_count++;}
            else
            {
                if(person[i].month>=9)
                 {
                    if(person[i].month>9) {person[i].err_flag=1;err_count++;}
                    else
                    {
                        if(person[i].day>=6)
                        {
                            if(person[i].day>6) {person[i].err_flag=1;err_count++;}
                        }
                    }
                 }

            }
        }
        if(person[i].err_flag==0)
            min=max=i;

    }     
    for ( i= 0; i < N; i++)
    {
         /*find max*/
        if(person[i].err_flag)
            break;
          if(person[i].year>=person[max].year) 
        {
            if(person[i].year>person[max].year) max=i;
            else
            {
                if(person[i].month>=person[max].month)
                 {
                    if(person[i].month>person[max].month) max=i;
                    else
                    {
                        if(person[i].day>=person[max].day)
                        {
                            if(person[i].day>person[max].day) max=i;
                        }
                    }
                 }

            }
        }
                /*find min*/
         if(person[i].year<=person[min].year) 
        {
            if(person[i].year<person[min].year) min=i;
            else
            {
                if(person[i].month<=person[min].month)
                 {
                    if(person[i].month<person[min].month) min=i;
                    else
                    {
                        if(person[i].day<=person[min].day)
                        {
                            if(person[i].day<person[min].day) min=i;
                        }
                    }
                 }

            }
        }
      
    }
    
    printf("%d %s %s\n",N-err_count,person[min].name,person[max].name );
}
